86
4383
لذلك أواجه بعض المشاكل في معرفة الاستخدام الصحيح لـ list :: sort () فيما يتعلق بقائمة البنى. ها هي الكود ذات الصلة:
طالب منظم
{
char firstnm [20] ،
lastnm [20] ؛
معرف int ،
درجة؛
} ؛
قائمة  قائمة ؛
// رمز غير ذي صلة ...
cout << "الرجاء إدخال اسمك وهويتك ودرجتك. (مثال: myfirst mylast 0 12) \ n"؛
سينما >> data.firstnm >> data.lastnm >> data.id >> data.grade؛
sList.push_back (بيانات) ؛
sList.sort () ،
المشكلة التي أحاول حلها هي استخدام sList.sort () للفرز حسب المعرف. ومع ذلك ، ليس لدي أي فكرة عن كيفية تمريرها بشكل صحيح إلى list :: sort (). شكرا مقدما على أي مساعدة / وقت!
تحرير: كان الحل ببساطة إضافة هذا إلى هيكلي
عامل تشغيل bool <(const student & cmp) const {
معرف العودة 
                                
يجب عليك إلقاء نظرة على std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) هناك تعريفات متعددة لهذه الوظيفة ، وواحد حيث يمكنك تحديد ما تريد الفرز.
أيضًا ، ألق نظرة على هذا المنشور ، أعتقد أنه ما تحتاجه: https://stackoverflow.com/a/21234017/6663947
تعديل :
هذا مثال على المقارنة:
sList.sort ([] (const student & a، const student & b) {return a.id 
فرز باطل (قارن شركات) ؛
بافتراض أنك تريد فرز كائنات الطالب في قائمتك وفقًا لمعرف المفتاح بترتيب تصاعدي. يمكنك إما تحديد عامل التشغيل <لفئة الطالب المحددة بواسطة المستخدم على النحو التالي:
عامل تشغيل bool <(student const & a، student const & b) {
إرجاع a.id